In [1]:
import IPython.core.display as di

# This line will hide code by default when the notebook is exported as HTML
di.display_html('<script>jQuery(function() {if (jQuery("body.notebook_app").length == 0) { jQuery(".input_area").toggle(); jQuery(".prompt").toggle();}});</script>', raw=True)

# This line will add a button to toggle visibility of code blocks, for use with the HTML export version
# di.display_html('''<button onclick="jQuery('.input_area').toggle(); jQuery('.prompt').toggle();">Toggle code</button>''', raw=True)
In [2]:
import numpy as np
import pandas as pd
import bokeh.plotting as plt
import bokeh as bk
bk.io.output_notebook()
BokehJS successfully loaded.
In [3]:
data = pd.read_csv('NormalizedNCI60.csv', index_col=0)
genes = data.index.values.tolist()
X = data.ix[:,5:]
# genes
X['index'] = list(range(len(genes)))
X = X.set_index('index')
In [4]:
def polar_to_cart(sample,X,len_, radius_off_set=1):
    theta = np.arange(0, len_)*2*np.pi/len_
    rho = X[sample]/np.max(X[sample]) + radius_off_set
    x = rho*np.cos(theta)
    y = rho*np.sin(theta)
    return x, y
In [5]:
# theta = np.arange(0, len(genes))*2*np.pi/len(genes)
# rho = X['ME:LOXIMVI']/np.max(X['ME:LOXIMVI']) + 1.5

# x = rho*np.cos(theta)
# y = rho*np.sin(theta)
# X['ME:MALME_3M']
x0,y0 = polar_to_cart('ME:LOXIMVI', X, len(genes), radius_off_set=0.5)
x1,y1 = polar_to_cart('ME:M14', X, len(genes), radius_off_set=1.5)
x2,y2 = polar_to_cart('ME:MALME_3M', X, len(genes), radius_off_set=2.5)

SOURCE0 = plt.ColumnDataSource(
    data=dict(
        x0 = x0,
        y0 = y0,
        labels = genes
    )
)

SOURCE1 = plt.ColumnDataSource(
    data=dict(
        
        x1 = x1,
        y1 = y1,
        labels = genes
    )
)

SOURCE2 = plt.ColumnDataSource(
    data=dict(
        x2 = x2,
        y2 = y2,
        labels = genes
    )
)

hover = bk.models.HoverTool(
    tooltips=[('Gene', '@labels')]
)
TOOLS="resize,crosshair,pan,wheel_zoom,box_zoom,reset,box_select,lasso_select,save"
TOOLS = [TOOLS, hover]

p = plt.figure(tools=TOOLS, webgl=False)
# p.grid.grid_line_color = None
p.line(x0, y0, alpha=0.5, color='navy')
p.circle(x0, y0, fill_alpha=0.2, line_color=None, fill_color='navy', source=SOURCE0, legend='ME:LOXIMVI')
p.line(x1, y1, alpha=0.5, color='red')
p.circle(x1, y1, fill_alpha=0.2, line_color=None, fill_color='red', source=SOURCE1, legend='ME:M14')
p.line(x2, y2, alpha=0.5, color='green')
p.circle(x2, y2, fill_alpha=0.2, line_color=None, fill_color='green', source=SOURCE2, legend='ME:MALME_3M')




p.axis.visible=None

plt.show(p)
Out[5]:
<bokeh.io._CommsHandle at 0x1079596a0>
In [8]:
Source_ = plt.ColumnDataSource(
    data = dict(
        labels = genes,
        theta = np.arange(0, len(genes))*2*np.pi/len(genes),
        rho0 = X['ME:LOXIMVI'],
        rho1 = X['ME:M14'],
        rho2 = X['ME:MALME_3M'],
        rho3 = X['ME:MDA_MB_435'],
    )
)

hover = bk.models.HoverTool(
    tooltips=[('Gene', '@labels')]
)
TOOLS="resize,crosshair,pan,wheel_zoom,box_zoom,reset,box_select,lasso_select,save"
# TOOLS = [TOOLS, hover]

p0 = plt.figure(tools=[TOOLS, hover], title='ME:LOXIMVI')
p0.grid.grid_line_color = None
p0.line('theta', 'rho0', alpha=0.5, source=Source_)
p0.circle('theta', 'rho0', fill_alpha=0.2, line_color=None, fill_color='navy', source=Source_)
# p0.y_range = plt.Range1d(start=0, end=0.02)

p1 = plt.figure(tools=TOOLS, title='ME:M14')
p1.grid.grid_line_color = None
p1.line('theta', 'rho1', alpha=0.5, source=Source_)
p1.circle('theta', 'rho1', fill_alpha=0.2, line_color=None, fill_color='navy', source=Source_)
# p1.y_range = plt.Range1d(start=0, end=.02)


p2 = plt.figure(tools=TOOLS, title='ME:MALME_3M')
p2.grid.grid_line_color = None
p2.line('theta', 'rho2', alpha=0.5, source=Source_)
p2.circle('theta', 'rho2', fill_alpha=0.2, line_color=None, fill_color='navy', source=Source_)
# p2.y_range = plt.Range1d(start=0, end=.02)


p3 = plt.figure(tools=TOOLS, title='ME:MDA_MB_435')
p3.grid.grid_line_color = None
p3.line('theta', 'rho3', alpha=0.5, source=Source_)
p3.circle('theta', 'rho3', fill_alpha=0.2, line_color=None, fill_color='navy', source=Source_)
# p3.y_range = plt.Range1d(start=0, end=.02)

p = plt.vplot(p0, p1, p2, p3)
plt.show(p)
Out[8]:
<bokeh.io._CommsHandle at 0x10b58d898>
In [ ]: